package com.and9.mchen.mcmusic.util

import groovy.json.JsonOutput
import com.and9.mchen.mcmusic.entity.BaseEntity



/**
 *
 * @author MC
 * @version  1.0
 */

final class GEntityHelper {

	private GEntityHelper(){}
	
	/**
	 * <p>
	 * 检查对象是否为null<br/>
	 * 如果传入的是集合，则当集合为null或者为空<br/>
	 * 返回 true
	 * </p>
	 * @param obj
	 * @return
	 */
	public static boolean isEmpty(def obj){
		return obj ? false : true;
	}
	
	/**
	 * <p>
	 * 检查对象的id是否大于0<br/>
	 * uniqueId是否符合java的 uuid格式</br>
	 * 传入的对象必须继承BaseEntity或者是BaseEntity
	 * </p>
	 * @param baseEntity
	 * @return
	 */
	public static boolean checkIDAndUniqueIdWhetherIegal(BaseEntity baseEntity){
		
		if(baseEntity && baseEntity?.getId() > 0 && (baseEntity?.getUniqueId() =~ /[0-9a-z]{8}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{12}/)){
			return true;
		}
		
		return false;
		
	}
	
	/**
	 * <p>
	 * 找出集合中id和uniqueId存在的对象<br/>
	 * </p>
	 * @param collection
	 * @return
	 */
	public static <T> Collection<T> findAllIdAndUniqueIdIsNotNull(Collection<T> collection){
		
		return collection.findAll{ it ->
			
			if((it instanceof BaseEntity) && checkIDAndUniqueIdWhetherIegal(it)){
				return it;
			}
			return null;
		}
	}
	
}
